# gd_killer_plus.py
import pyautogui
from DrissionPage import ChromiumPage
import datetime

from constant import KILL_TIME, PRODUCT_ID

# 创建对象并指定端口
page = ChromiumPage(9228)

# 指定秒杀时间和商品ID
kill_time = KILL_TIME
# product_id = "100147630258" #9800x3d
product_id = PRODUCT_ID

# 用于定位购买按钮的文字，根据实际情况修改，可以是“立即购买”、“领券购买”等等
pay_button_text = "在线支付"


# 拼接后的支付链接（注意：这里的链接拼接方式可能需要根据实际情况调整）
pay_url = (  "https://trade.m.jd.com/pay?sceneval=2&scene=jd&isCanEdit=1&EncryptInfo=&Token=&bid=&type=0&lg=0&supm=0&scan_orig=search.1.undefined.undefined.undefinedsearch.2.undefined.undefined&wdref=https%3A%2F%2Fitem.m.jd.com%2Fproduct%"+product_id+".html%3Fsceneval%3D2%26jxsid%3D17357820992780984062%26appCode%3Dms0ca95114%26_fd%3Djdm&commlist="+product_id+",,1,"+product_id+",1,0,0&locationid=1-72-2819-0&jxsid=17357820992780984062&appCode=ms0ca95114#/index"
)

# 访问支付链接
page.get(pay_url)

while True:
    # 获取当前时间
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')

    # 判断当前时间是否到达了秒杀时间
    if now >= kill_time:
        try:
            # pyautogui.click(x=2360, y=1320)
            print(now)
            while page.ele(pay_button_text):  # 假设存在一个方法来判断元素是否存在
                # 点击购买按钮
                page.ele(pay_button_text).click()  # 假设存在一个方法来点击元素
                break
        except Exception as err:
            # 如果发生任何异常都进行捕捉，防止浏览器退出
            print(f"发生了错误，请手动完成后续步骤: {err}")
            input("按回车键退出...")  # 等待用户输入以便观察错误信息
            break  # 退出循环